package cn.chengpengper.fragmentUpload.utils;

import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;

import java.io.File;

/*@formatter:off*/

/**
 * ____________________
 * < 神兽护体，永无bug! >
 * --------------------
 *
 * @author catwing
 * @version v1.0.0
 * @date 2024/12/4 23:28
 * @description 分片上传工具类
 */

/*@formatter:on*/

@Slf4j
public class ShardUploadUtils {

    @SneakyThrows
    public static File createFileNotExists(File file) {
        if (!file.exists()) {
            FileUtils.forceMkdirParent(file);
            boolean res = file.createNewFile();
            log.info("File [{}] Create Result Is [{}]", file.getName(), res);
        }
        return file;
    }

    /**
     * 获取分片数量
     *
     * @param fileSize 文件大小（byte）
     * @param partSize 分片大小（byte）
     * @return 分片数量
     */
    public static int shardNum(long fileSize, long partSize) {
        if (fileSize % partSize == 0) {
            return (int) (fileSize / partSize);
        } else {
            return (int) (fileSize / partSize) + 1;
        }
    }
}
